home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Source Code / C / Applications / Tcl-Tk 8.0 / Pre-installed version / tk8.0 / tests / macEmbed.test < prev    next >
Encoding:
Text File  |  1997-08-15  |  7.6 KB  |  291 lines  |  [TEXT/ALFA]

  1. # This file is a Tcl script to test out the procedures in the file 
  2. # tkMacEmbed.c.  It is organized in the standard fashion for Tcl
  3. # tests.
  4. #
  5. # Copyright (c) 1997 Sun Microsystems, Inc.
  6. #
  7. # See the file "license.terms" for information on usage and redistribution
  8. # of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  9. #
  10. # SCCS:  @(#) macEmbed.test 1.1 97/08/06 21:18:53
  11.  
  12. if {$tcl_platform(platform) != "macintosh"} {
  13.     return
  14. }
  15.  
  16. if {[info procs test] != "test"} {
  17.     source defs
  18. }
  19.  
  20. eval destroy [winfo children .]
  21. wm geometry . {}
  22. raise .
  23.  
  24.  
  25. test macEmbed-1.1 {TkpUseWindow procedure, bad window identifier} {
  26.     catch {destroy .t}
  27.     list [catch {toplevel .t -use xyz} msg] $msg
  28. } {1 {expected integer but got "xyz"}}
  29. test macEmbed-1.2 {TkpUseWindow procedure, bad window identifier} {
  30.     catch {destroy .t}
  31.     list [catch {toplevel .t -use 47} msg] $msg
  32. } {1 {The window ID 47 does not correspond to a valid Tk Window.}}
  33. test macEmbed-1.3 {TkpUseWindow procedure, creating Container records} {
  34.     eval destroy [winfo child .]
  35.     frame .f1 -container 1 -width 200 -height 50
  36.     frame .f2 -container 1 -width 200 -height 50
  37.     pack .f1 .f2
  38.     set w [winfo id .f1]
  39.     toplevel .t -use $w
  40.     list [testembed] [expr [lindex [lindex [testembed all] 1] 0] - $w]
  41. } {{{XXX .f2 {} {}} {XXX .f1 XXX .t}} 0}
  42. test macEmbed-1.4 {TkpUseWindow procedure, creating Container records} {
  43.     eval destroy [winfo child .]
  44.     frame .f1 -container 1 -width 200 -height 50
  45.     frame .f2 -container 1 -width 200 -height 50
  46.     pack .f1 .f2
  47.     set w1 [winfo id .f1]
  48.     set w2 [winfo id .f2]
  49.     toplevel .t1 -use $w1
  50.     toplevel .t2 -use $w2
  51.     testembed
  52. } {{XXX .f2 XXX .t2} {XXX .f1 XXX .t1}}
  53.  
  54. # Can't think of any way to test the procedures TkpMakeWindow,
  55. # TkpMakeContainer, or EmbedErrorProc.
  56.  
  57. test macEmbed-2.1 {EmbeddedEventProc procedure} {
  58.     foreach w [winfo child .] {
  59.     catch {destroy $w}
  60.     }
  61.     frame .f1 -container 1 -width 200 -height 50
  62.     pack .f1
  63.     set w1 [winfo id .f1]
  64.     toplevel .t1 -use $w1
  65.     testembed
  66.     destroy .t1
  67.     update
  68.     testembed
  69. } {}
  70. test macEmbed-2.2 {EmbeddedEventProc procedure} {
  71.     foreach w [winfo child .] {
  72.     catch {destroy $w}
  73.     }
  74.     frame .f1 -container 1 -width 200 -height 50
  75.     pack .f1
  76.     toplevel .t1 -use [winfo id .f1]
  77.     update
  78.     destroy .f1
  79.     testembed
  80. } {}
  81. test macEmbed-2.3 {EmbeddedEventProc procedure} {
  82.     foreach w [winfo child .] {
  83.     catch {destroy $w}
  84.     }
  85.     frame .f1 -container 1 -width 200 -height 50
  86.     pack .f1
  87.     toplevel .t1 -use [winfo id .f1]
  88.     update
  89.     destroy .t1
  90.     update
  91.     list [testembed] [winfo children .]
  92. } {{} {}}
  93.  
  94. test macEmbed-3.1 {EmbeddedEventProc procedure, detect creation} {
  95.     foreach w [winfo child .] {
  96.     catch {destroy $w}
  97.     }
  98.     frame .f1 -container 1 -width 200 -height 50
  99.     pack .f1
  100.     set w1 [winfo id .f1]
  101.     set x [testembed]
  102.     toplevel .t1 -use $w1
  103.     wm withdraw .t1
  104.     list $x [testembed]
  105. } {{{XXX .f1 {} {}}} {{XXX .f1 XXX .t1}}}
  106. test macEmbed-3.2 {EmbeddedEventProc procedure, disallow position changes} {
  107.     foreach w [winfo child .] {
  108.     catch {destroy $w}
  109.     }
  110.     frame .f1 -container 1 -width 200 -height 50
  111.     pack .f1
  112.     set w1 [winfo id .f1]
  113.     toplevel .t1 -use $w1 -bd 2 -relief raised
  114.     update
  115.     wm geometry .t1 +30+40
  116.     update
  117.     wm geometry .t1
  118. } {200x200+0+0}
  119. test macEmbed-3.3 {EmbeddedEventProc procedure, disallow position changes} {
  120.     foreach w [winfo child .] {
  121.     catch {destroy $w}
  122.     }
  123.     frame .f1 -container 1 -width 200 -height 50
  124.     pack .f1
  125.     set w1 [winfo id .f1]
  126.     toplevel .t1 -use $w1
  127.     update
  128.     wm geometry .t1 300x100+30+40
  129.     update
  130.     wm geometry .t1
  131. } {300x100+0+0}
  132. test macEmbed-3.4 {EmbeddedEventProc procedure, geometry requests} {
  133.     foreach w [winfo child .] {
  134.     catch {destroy $w}
  135.     }
  136.     toplevel .t1 -container 1 -width 200 -height 50
  137.     set w1 [winfo id .t1]
  138.     toplevel .t2 -use $w1
  139.     update
  140.     .t1 configure -width 300 -height 80
  141.     update
  142.     list [winfo width .t1] [winfo height .t1] [wm geometry .t2]
  143. } {300 80 300x80+0+0}
  144. test macEmbed-3.5 {EmbeddedEventProc procedure, map requests} {
  145.     foreach w [winfo child .] {
  146.     catch {destroy $w}
  147.     }
  148.     frame .f1 -container 1 -width 200 -height 50
  149.     pack .f1
  150.     set w1 [winfo id .f1]
  151.     toplevel .t1 -use $w1
  152.     set x unmapped
  153.     bind .t1 <Map> {set x mapped}
  154.     update
  155.     after 100
  156.     update
  157.     set x
  158. } {mapped}
  159. test macEmbed-3.6 {EmbeddedEventProc procedure, destroy events} {
  160.     foreach w [winfo child .] {
  161.     catch {destroy $w}
  162.     }
  163.     frame .f1 -container 1 -width 200 -height 50
  164.     pack .f1
  165.     set w1 [winfo id .f1]
  166.     bind .f1 <Destroy> {set x dead}
  167.     set x alive
  168.     toplevel .t1 -use $w1
  169.     update
  170.     destroy .t1
  171.     update
  172.     list $x [winfo exists .f1]
  173. } {dead 0}
  174.  
  175. test macEmbed-4.1 {EmbedStructureProc procedure, configure events} {
  176.     foreach w [winfo child .] {
  177.     catch {destroy $w}
  178.     }
  179.     frame .f1 -container 1 -width 200 -height 50
  180.     pack .f1
  181.     set w1 [winfo id .f1]
  182.     toplevel .t1 -use $w1
  183.     update
  184.     .t1 configure -width 180 -height 100
  185.     update
  186.     winfo geometry .t1
  187. } {180x100+0+0}
  188. test macEmbed-4.2 {EmbedStructureProc procedure, destroy events} {
  189.     foreach w [winfo child .] {
  190.     catch {destroy $w}
  191.     }
  192.     frame .f1 -container 1 -width 200 -height 50
  193.     pack .f1
  194.     set w1 [winfo id .f1]
  195.     toplevel .t1 -use $w1
  196.     update
  197.     set x [testembed]
  198.     destroy .f1
  199.     list $x [testembed]
  200. } {{{XXX .f1 XXX .t1}} {}}
  201.  
  202. # Can't think up any tests for TkpGetOtherWindow procedure.
  203.  
  204. test unixEmbed-5.1 {TkpClaimFocus procedure} {tempNotMac} {
  205.     catch {interp delete child}
  206.     foreach w [winfo child .] {
  207.     catch {destroy $w}
  208.     }
  209.     frame .f1 -container 1 -width 200 -height 50
  210.     frame .f2 -width 200 -height 50
  211.     pack .f1 .f2
  212.     interp create child
  213.     child eval "set argv {-use [winfo id .f1]}"
  214.     load {} tk child
  215.     child eval {
  216.     . configure -bd 2 -highlightthickness 2 -relief sunken
  217.     }
  218.     focus -force .f2
  219.     update
  220.     list [child eval {
  221.     focus .
  222.     set x [list [focus]]
  223.     update
  224.     lappend x [focus]
  225.     }] [focus]
  226. } {{{} .} .f1}
  227. catch {interp delete child}
  228.  
  229. test macEmbed-6.1 {EmbedWindowDeleted procedure, check parentPtr} {
  230.     foreach w [winfo child .] {
  231.     catch {destroy $w}
  232.     }
  233.     frame .f1 -container 1 -width 200 -height 50
  234.     frame .f2 -container 1 -width 200 -height 50
  235.     frame .f3 -container 1 -width 200 -height 50
  236.     frame .f4 -container 1 -width 200 -height 50
  237.     pack .f1 .f2 .f3 .f4
  238.     set x {}
  239.     lappend x [testembed]
  240.     foreach w {.f3 .f4 .f1 .f2} {
  241.     destroy $w
  242.     lappend x [testembed]
  243.     }
  244.     set x
  245. } {{{XXX .f4 {} {}} {XXX .f3 {} {}} {XXX .f2 {} {}} {XXX .f1 {} {}}} {{XXX .f4 {} {}} {XXX .f2 {} {}} {XXX .f1 {} {}}} {{XXX .f2 {} {}} {XXX .f1 {} {}}} {{XXX .f2 {} {}}} {}}
  246. test macEmbed-6.2 {EmbedWindowDeleted procedure, check embeddedPtr} {
  247.     foreach w [winfo child .] {
  248.     catch {destroy $w}
  249.     }
  250.     frame .f1 -container 1 -width 200 -height 50
  251.     pack .f1
  252.     set w1 [winfo id .f1]
  253.     toplevel .t1 -use $w1 -highlightthickness 2 -bd 2 -relief sunken
  254.     set x {}
  255.     lappend x [testembed]
  256.     destroy .t1
  257.     update
  258.     lappend x [testembed]
  259. } {{{XXX .f1 XXX .t1}} {}}
  260.  
  261. test macEmbed-7.1 {geometry propagation in tkUnixWm.c/UpdateGeometryInfo} {
  262.     foreach w [winfo child .] {
  263.     catch {destroy $w}
  264.     }
  265.     frame .f1 -container 1 -width 200 -height 50
  266.     pack .f1
  267.     toplevel .t1 -use [winfo id .f1] -width 150 -height 80
  268.     update
  269.     wm geometry .t1 +40+50
  270.     update
  271.     wm geometry .t1
  272. } {150x80+0+0}
  273. test macEmbed-7.2 {geometry propagation in tkUnixWm.c/UpdateGeometryInfo} {
  274.     foreach w [winfo child .] {
  275.     catch {destroy $w}
  276.     }
  277.     frame .f1 -container 1 -width 200 -height 50
  278.     pack .f1
  279.     toplevel .t1 -use [winfo id .f1] -width 150 -height 80
  280.     update
  281.     wm geometry .t1 70x300+10+20
  282.     update
  283.     wm geometry .t1
  284. } {70x300+0+0}
  285.  
  286.  
  287.  
  288. foreach w [winfo child .] {
  289.     catch {destroy $w}
  290. }
  291.